<?
/*
	Обеспечивает взаимодействие с темой (внешим отображением). Все контролы содержит в 
	подпапках с именами тем в папке с данными. Для отображения использует метод render(<control>, params);

	Создан: 2011-03-09
	Автор: djerom, tonatos
	Версия: 0.0.0.2
*/

class c_theme_util
{
	var $name = 'default'; // Имя темы (имя папки с шаблонами).
	var $items = array(); // Элементы темы (имя элемнета - имя шаблона).

	function c_theme_util($name = '')
	{
		global $mvc;
		if ($name) $this->name = $name;
		$mvc->fill_class_vars($this);
	}
	
	function make_url($filename = '', $theme_name = '')
	{
		return $this->data_url.($theme_name ? $theme_name : $this->name).'/'.$filename;
	}

	// Возвращает текст шаблона с именем $item_name и передает в него $params.
	function render($item_name, $theme_name = '')
	{	
		global $mvc;

		if (isset($this->items[$item_name])) $item_name = $this->items[$item_name];

		$file_name = $this->data_path.($theme_name ? $theme_name : $this->name).'/'.$item_name.'.php';
		
		if (file_exists($file_name))
		{
			ob_start();		
			include($file_name);
			return ob_get_clean();
		}
		else
		{
			$mvc->message($file_name.' not found.', 1, $this);
			return '';
		}
	}
	
	// Устанавливает шаблон для вывода элемента с именем $item_name.
	function set_item($item_name, $tpl_name = '')
	{
		$this->items[$item_name] = $tpl_name;
	}
}

?>